this._group.connect('destroy', Lang.bind(this, this._onGroupDestroy));
this._actionKeys = {};
- this._group.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
+ this._group.connect('key-release-event', Lang.bind(this, this._onKeyReleaseEvent));
this._backgroundBin = new St.Bin();
this._group.add_actor(this._backgroundBin);
this._group.destroy();
},
+ setActionKey: function(key, action) {
+ this._actionKeys[key] = action;
+ },
+
setButtons: function(buttons) {
let hadChildren = this._buttonLayout.get_children() > 0;
},
- _onKeyPressEvent: function(object, keyPressEvent) {
- let symbol = keyPressEvent.get_key_symbol();
+ _onKeyReleaseEvent: function(object, event) {
+ let symbol = event.get_key_symbol();
let action = this._actionKeys[symbol];
- if (action)
+ if (action) {
action();
+ return true;
+ }
+
+ return false;
},
_onGroupDestroy: function() {
action: Lang.bind(this, this._doUnlock),
default: true };
this.setButtons([this._okButton]);
+ this.setActionKey(Clutter.KEY_Escape, Lang.bind(this, this._escape));
this._updateOkButton(false);
this._reset();
this.emit('failed');
},
+ _escape: function() {
+ this._onVerificationFailed();
+ },
+
_otherUserClicked: function(button, event) {
this._userManager.goto_login_session();